﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using Elysium.Demo;
using SIIE_ERP.Codigo;
using SIIE_ERP.BaseDatos;
using SIIE_ERP.View;

namespace Elysium.Demo.Informes
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class GenericReport_Impresiones : UserControl, IPropiedadesNavegacion
    {
        ////////////////////////////////////////////////////////////////////////////
        //  PROPIEDADES DE NAVEGACION
        public string Texto { get { return _texto; } }
        public TabControl TabControlPadre { get { return _tabControlPadre; } }
        public TabItem TabItemPadre { get { return _tabItemPadre; } }

        private string _texto;
        private TabControl _tabControlPadre;
        private TabItem _tabItemPadre;

        public void setParametros(string Texto, ref TabControl tabControl, ref TabItem tabItem)
        {
            this._texto = Texto; this._tabControlPadre = tabControl; this._tabItemPadre = tabItem;
        }

        private void ButtonRegresar_Click(object sender, RoutedEventArgs e)
        {
            _tabControlPadre.Items.Remove(_tabItemPadre);
        }
        // FIN DE PROPIEDADES DE NAVEGACION
        ///////////////////////////////////////////////////////////////////////////

        private UsuarioActivo _sesion;
        private string _RutaReporte;

        private Documentos_Id _Tipo_Documento;
        private int _Id_Almacen;
        private int _Id_Campana;
        private int _Id_Cliente;
        private int _Id_Colaborador;
        private int _Estatus;
        private int _Tiempo;
        private int _Id_Numerico1;
        private int _Id_Numerico2;
        private int _Id_Numerico3;
        private int _Id_Numerico4;
        private int _Id_Numerico5;
        private int _Id_Numerico6;

        public GenericReport_Impresiones(ref UsuarioActivo usuario, string RutaReporte)
        {
            InitializeComponent();
            this._sesion = usuario;
            this._RutaReporte = RutaReporte;

            _reportViewer.Load += ReportViewer_Load;
        }

        public GenericReport_Impresiones(ref UsuarioActivo usuario, string RutaReporte, int Id_Numerico1, int Id_Numerico2, int Id_Numerico3, int Id_Numerico4, int Id_Numerico5, int Id_Numerico6)
        {
            InitializeComponent();
            this._sesion = usuario;
            this._RutaReporte = RutaReporte;

            this._Id_Numerico1 = Id_Numerico1;
            this._Id_Numerico2 = Id_Numerico2;
            this._Id_Numerico3 = Id_Numerico3;
            this._Id_Numerico4 = Id_Numerico4;
            this._Id_Numerico5 = Id_Numerico5;
            this._Id_Numerico6 = Id_Numerico6;

            _reportViewer.Load += ReportViewer_Load;
        }

        public GenericReport_Impresiones(ref UsuarioActivo usuario, string RutaReporte, int Id_Numerico1, int Id_Numerico2, int Id_Numerico3, int Id_Numerico4, int Id_Numerico5)
        {
            InitializeComponent();
            this._sesion = usuario;
            this._RutaReporte = RutaReporte;

            this._Id_Numerico1 = Id_Numerico1;
            this._Id_Numerico2 = Id_Numerico2;
            this._Id_Numerico3 = Id_Numerico3;
            this._Id_Numerico4 = Id_Numerico4;
            this._Id_Numerico5 = Id_Numerico5;

            _reportViewer.Load += ReportViewer_Load;
        }

        public GenericReport_Impresiones(ref UsuarioActivo usuario, string RutaReporte, int Id_Numerico1, int Id_Numerico2, int Id_Numerico3, int Id_Numerico4)
        {
            InitializeComponent();
            this._sesion = usuario;
            this._RutaReporte = RutaReporte;

            this._Id_Numerico1 = Id_Numerico1;
            this._Id_Numerico2 = Id_Numerico2;
            this._Id_Numerico3 = Id_Numerico3;
            this._Id_Numerico4 = Id_Numerico4;

            _reportViewer.Load += ReportViewer_Load;
        }

        public GenericReport_Impresiones(ref UsuarioActivo usuario, string RutaReporte, int Id_Numerico1, int Id_Numerico2)
        {
            InitializeComponent();
            this._sesion = usuario;
            this._RutaReporte = RutaReporte;

            this._Id_Numerico1 = Id_Numerico1;
            this._Id_Numerico2 = Id_Numerico2;

            _reportViewer.Load += ReportViewer_Load;
        }


        public GenericReport_Impresiones(ref UsuarioActivo usuario, string RutaReporte, int Id_Numerico1, int Id_Numerico2, int Id_Numerico3)
        {
            InitializeComponent();
            this._sesion = usuario;
            this._RutaReporte = RutaReporte;

            this._Id_Numerico1 = Id_Numerico1;
            this._Id_Numerico2 = Id_Numerico2;
            this._Id_Numerico3 = Id_Numerico3;

            _reportViewer.Load += ReportViewer_Load;
        }

        public GenericReport_Impresiones(ref UsuarioActivo usuario, string RutaReporte, Documentos_Id Tipo_Documento, int Id_Almacen, int Id_Campana, int Id_Cliente, int Id_Colaborador, int Estatus, int Tiempo)
        {
            InitializeComponent();
            this._sesion = usuario;
            this._RutaReporte = RutaReporte;

            this._Tipo_Documento = Tipo_Documento;
            this._Id_Almacen = Id_Almacen;
            this._Id_Campana = Id_Campana;
            this._Id_Cliente = Id_Cliente;
            this._Id_Colaborador = Id_Colaborador;
            this._Estatus = Estatus;
            this._Tiempo = Tiempo;
            
            _reportViewer.Load += ReportViewer_Load;
        }

        public GenericReport_Impresiones(ref UsuarioActivo usuario, string RutaReporte, int Id_Numerico1)
        {
            InitializeComponent();
            this._sesion = usuario;
            this._RutaReporte = RutaReporte;

            this._Id_Numerico1 = Id_Numerico1;
            
            _reportViewer.Load += ReportViewer_Load;
        }

        private bool _isReportViewerLoaded;

        private void ReportViewer_Load(object sender, EventArgs e)
        {
            if (!_isReportViewerLoaded)
            {
                SIIE_ERP.BaseDatos.Ventas.Catalogos.dbo_Cat_Grupo_Clientes Cat_Grupo_Clientes = new SIIE_ERP.BaseDatos.Ventas.Catalogos.dbo_Cat_Grupo_Clientes(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Compras.Catalogos.dbo_Cat_Grupo_Proveedores Cat_Grupo_Proveedores = new SIIE_ERP.BaseDatos.Compras.Catalogos.dbo_Cat_Grupo_Proveedores(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Configuracion.Empresa.dbo_Cat_Empresa Cat_Empresa = new SIIE_ERP.BaseDatos.Configuracion.Empresa.dbo_Cat_Empresa(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Bancos.Catalogos.dbo_Cat_Cuenta_Bancaria Cat_Cuenta_Bancaria = new SIIE_ERP.BaseDatos.Bancos.Catalogos.dbo_Cat_Cuenta_Bancaria(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Bancos.Catalogos.dbo_Cat_BancoTC Cat_BancoTC = new SIIE_ERP.BaseDatos.Bancos.Catalogos.dbo_Cat_BancoTC(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Bancos.Catalogos.dbo_Cat_Forma_Pago Cat_Forma_Pago = new SIIE_ERP.BaseDatos.Bancos.Catalogos.dbo_Cat_Forma_Pago(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Bancos.Catalogos.dbo_Cat_TipoMov_Banco Cat_TipoMov_Banco = new SIIE_ERP.BaseDatos.Bancos.Catalogos.dbo_Cat_TipoMov_Banco(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.PuntoVenta.Catalogos.dbo_Cat_Terminal Cat_Terminal = new SIIE_ERP.BaseDatos.PuntoVenta.Catalogos.dbo_Cat_Terminal(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_Almacen Cat_Almacen = new SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_Almacen(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_UM Cat_UM = new SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_UM(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_Grupo_Productos Cat_Grupo_Productos = new SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_Grupo_Productos(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_SubGrupo_Productos Cat_SubGrupo_Productos = new SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_SubGrupo_Productos(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_Linea Cat_Linea = new SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_Linea(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_TipoMov_Inv Cat_TipoMov_Inv = new SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_TipoMov_Inv(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.CRM.Catalogos.dbo_Cat_Campana Cat_Campana = new SIIE_ERP.BaseDatos.CRM.Catalogos.dbo_Cat_Campana(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.CRM.Catalogos.dbo_Cat_Competidor Cat_Competidor = new SIIE_ERP.BaseDatos.CRM.Catalogos.dbo_Cat_Competidor(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.CRM.Catalogos.dbo_Cat_Tipo_Actividad Cat_Tipo_Actividad = new SIIE_ERP.BaseDatos.CRM.Catalogos.dbo_Cat_Tipo_Actividad(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Ventas.Transacciones.Documento_Ventas Documento_Ventas = new SIIE_ERP.BaseDatos.Ventas.Transacciones.Documento_Ventas(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Compras.Transacciones.Documento_Compras Documento_Compras = new SIIE_ERP.BaseDatos.Compras.Transacciones.Documento_Compras(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Ventas.Catalogos.dbo_Cat_Cliente Cat_Cliente = new SIIE_ERP.BaseDatos.Ventas.Catalogos.dbo_Cat_Cliente(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Compras.Catalogos.dbo_Cat_Proveedor Cat_Proveedor = new SIIE_ERP.BaseDatos.Compras.Catalogos.dbo_Cat_Proveedor(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.CRM.Transacciones.dbo_Trans_Actividad Trans_Actividad = new SIIE_ERP.BaseDatos.CRM.Transacciones.dbo_Trans_Actividad(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Bancos.Transacciones.dbo_Transferencias_Bancos Transferencias_Bancos = new SIIE_ERP.BaseDatos.Bancos.Transacciones.dbo_Transferencias_Bancos(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Inventarios.Transacciones.Trans_Traspasos Traspasos = new SIIE_ERP.BaseDatos.Inventarios.Transacciones.Trans_Traspasos(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Inventarios.Transacciones.Trans_MovInv MovInv = new SIIE_ERP.BaseDatos.Inventarios.Transacciones.Trans_MovInv(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Inventarios.Transacciones.Trans_Inv_Fisico Inv_Fisico = new SIIE_ERP.BaseDatos.Inventarios.Transacciones.Trans_Inv_Fisico(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Bancos.Transacciones.dbo_Movimiento_Banco Movimiento_Banco = new SIIE_ERP.BaseDatos.Bancos.Transacciones.dbo_Movimiento_Banco(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_Articulo Cat_Articulo = new SIIE_ERP.BaseDatos.Inventarios.Catalogos.dbo_Cat_Articulo(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.PuntoVenta.Transacciones.dbo_Tickets Tickets = new SIIE_ERP.BaseDatos.PuntoVenta.Transacciones.dbo_Tickets(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.CRM.Transacciones.dbo_Trans_Oportunidad Trans_Oportunidad = new SIIE_ERP.BaseDatos.CRM.Transacciones.dbo_Trans_Oportunidad(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Bancos.Transacciones.dbo_Pago_Clientes Pago_Clientes = new SIIE_ERP.BaseDatos.Bancos.Transacciones.dbo_Pago_Clientes(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Bancos.dbo_Pago_Proveedor Pago_Proveedor = new SIIE_ERP.BaseDatos.Bancos.dbo_Pago_Proveedor(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Configuracion.Empresa.dbo_Cat_Empresa_Datos_Factura Cat_Empresa_Datos_Factura = new SIIE_ERP.BaseDatos.Configuracion.Empresa.dbo_Cat_Empresa_Datos_Factura(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Ventas.Transacciones.Documento_VentasArrendamiento Documento_VentasArrendamiento = new SIIE_ERP.BaseDatos.Ventas.Transacciones.Documento_VentasArrendamiento(_sesion.RFC, _sesion.UserName);
                SIIE_ERP.BaseDatos.Ventas.Transacciones.Documento_VentasHonorarios Documento_VentasHonorarios = new SIIE_ERP.BaseDatos.Ventas.Transacciones.Documento_VentasHonorarios(_sesion.RFC, _sesion.UserName);

                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource1 = new Microsoft.Reporting.WinForms.ReportDataSource();
                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource2 = new Microsoft.Reporting.WinForms.ReportDataSource();
                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource3 = new Microsoft.Reporting.WinForms.ReportDataSource();
                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource4 = new Microsoft.Reporting.WinForms.ReportDataSource();
                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource5 = new Microsoft.Reporting.WinForms.ReportDataSource();
                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource6 = new Microsoft.Reporting.WinForms.ReportDataSource();
                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource7 = new Microsoft.Reporting.WinForms.ReportDataSource();
                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource8 = new Microsoft.Reporting.WinForms.ReportDataSource();
                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource9 = new Microsoft.Reporting.WinForms.ReportDataSource();
                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource10 = new Microsoft.Reporting.WinForms.ReportDataSource();
                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource11 = new Microsoft.Reporting.WinForms.ReportDataSource();
                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource12 = new Microsoft.Reporting.WinForms.ReportDataSource();
                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource13 = new Microsoft.Reporting.WinForms.ReportDataSource();
                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource14 = new Microsoft.Reporting.WinForms.ReportDataSource();
                Microsoft.Reporting.WinForms.ReportDataSource reportDataSource15 = new Microsoft.Reporting.WinForms.ReportDataSource();

                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Cotizacion.rdlc"))
                {    
                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_Ventas.Get_Report(Documentos_Id.Doc_CotizacionVenta, this._Id_Numerico1);
                                     
                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();
                                
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                }

                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Cotizacion_Compras.rdlc"))
                {
                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_Compras.Get_Report(Documentos_Id.Doc_CotizacionCompra, this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                }

                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Devolucion_Proveedor.rdlc"))
                {
                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_Compras.Get_Report(Documentos_Id.Doc_DevolucionProveedor, this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                }
                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Pedido_Cliente.rdlc"))
                {
                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_Ventas.Get_Report(Documentos_Id.Doc_Pedido, this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                }

                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Pedido_Proveedor.rdlc"))
                {
                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_Compras.Get_Report(Documentos_Id.Doc_OrdenCompra, this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                }

                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Remision.rdlc"))
                {
                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_Ventas.Get_Report(Documentos_Id.Doc_Remision, this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                }

                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Recepcion.rdlc"))
                {
                    reportDataSource1.Name = "Factura_Proveedor"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_Compras.Get_Report(Documentos_Id.Doc_Recepcion, this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                }
                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Nota_Credito.rdlc"))
                {
                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_Ventas.Get_Report_NC(Documentos_Id.Doc_NotaCreditoCliente, this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                }
                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Nota_Credito_Proveedor.rdlc"))
                {
                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_Compras.Get_Report_NC(Documentos_Id.Doc_NotaCreditoProveedor, this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                }
                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Devolucion_Cliente.rdlc"))
                {
                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_Ventas.Get_Report(Documentos_Id.Doc_DevolucionCliente, this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                }
                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Factura_Cliente.rdlc"))
                {
                    DataTable dt_Importe = new DataTable();
                    dt_Importe.Clear();
                    dt_Importe.Columns.Add("Total_Letra");

                    DataRow _ravi = dt_Importe.NewRow();
                    try
                    {
                        _ravi["Total_Letra"] = FuncionesClass.GetNumeroAletras(Double.Parse(Documento_Ventas.Get_Documento_By_Id(Documentos_Id.Doc_FacturaCliente, this._Id_Numerico1).Rows[0]["Total"].ToString())).ToString().ToUpper();
                    }
                    catch (Exception Ex)
                    {
                        _ravi["Total_Letra"] = "";
                    }
                    dt_Importe.Rows.Add(_ravi);

                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_Ventas.Get_Report(Documentos_Id.Doc_FacturaCliente, this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    reportDataSource3.Name = "Datos_Factura"; //Name of the report dataset in our .RDLC file
                    reportDataSource3.Value = Cat_Empresa_Datos_Factura.Get_Empresa_Datos_Factura();

                    reportDataSource4.Name = "Importe_Letra"; //Name of the report dataset in our .RDLC file
                    reportDataSource4.Value = dt_Importe;
                                        
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource3);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource4);
                }

                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Factura_Cliente_FE.rdlc"))
                {
                    DataTable dt_Importe = new DataTable();
                    dt_Importe.Clear();
                    dt_Importe.Columns.Add("Total_Letra");

                    DataRow _ravi = dt_Importe.NewRow();
                    try
                    {
                        _ravi["Total_Letra"] = FuncionesClass.GetNumeroAletras(Double.Parse(Documento_Ventas.Get_Documento_By_Id(Documentos_Id.Doc_FacturaCliente, this._Id_Numerico1).Rows[0]["Total"].ToString())).ToString().ToUpper();
                    }
                    catch (Exception Ex)
                    {
                        _ravi["Total_Letra"] = "";
                    }
                    dt_Importe.Rows.Add(_ravi);

                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_Ventas.Get_Report(Documentos_Id.Doc_FacturaCliente, this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    reportDataSource3.Name = "Datos_Factura"; //Name of the report dataset in our .RDLC file
                    reportDataSource3.Value = Cat_Empresa_Datos_Factura.Get_Empresa_Datos_Factura();

                    reportDataSource4.Name = "Importe_Letra"; //Name of the report dataset in our .RDLC file
                    reportDataSource4.Value = dt_Importe;

                    reportDataSource5.Name = "FE"; //Name of the report dataset in our .RDLC file
                    reportDataSource5.Value = Documento_Ventas.Get_Report_CFDi(Documentos_Id.Doc_FacturaCliente, this._Id_Numerico1);

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource3);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource4);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource5);
                }

                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Devolucion_Cliente_FE.rdlc"))
                {
                    DataTable dt_Importe = new DataTable();
                    dt_Importe.Clear();
                    dt_Importe.Columns.Add("Total_Letra");

                    DataRow _ravi = dt_Importe.NewRow();
                    try
                    {
                        _ravi["Total_Letra"] = FuncionesClass.GetNumeroAletras(Double.Parse(Documento_Ventas.Get_Documento_By_Id(Documentos_Id.Doc_DevolucionCliente, this._Id_Numerico1).Rows[0]["Total"].ToString())).ToString().ToUpper();
                    }
                    catch (Exception Ex)
                    {
                        _ravi["Total_Letra"] = "";
                    }
                    dt_Importe.Rows.Add(_ravi);

                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_Ventas.Get_Report(Documentos_Id.Doc_DevolucionCliente, this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    reportDataSource3.Name = "Datos_Factura"; //Name of the report dataset in our .RDLC file
                    reportDataSource3.Value = Cat_Empresa_Datos_Factura.Get_Empresa_Datos_Factura();

                    reportDataSource4.Name = "Importe_Letra"; //Name of the report dataset in our .RDLC file
                    reportDataSource4.Value = dt_Importe;

                    reportDataSource5.Name = "FE"; //Name of the report dataset in our .RDLC file
                    reportDataSource5.Value = Documento_Ventas.Get_Report_CFDi(Documentos_Id.Doc_DevolucionCliente, this._Id_Numerico1);

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource3);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource4);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource5);
                }

                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Nota_Credito_FE.rdlc"))
                {
                    DataTable dt_Importe = new DataTable();
                    dt_Importe.Clear();
                    dt_Importe.Columns.Add("Total_Letra");

                    DataRow _ravi = dt_Importe.NewRow();
                    try
                    {
                        _ravi["Total_Letra"] = FuncionesClass.GetNumeroAletras(Double.Parse(Documento_Ventas.Get_Documento_By_Id(Documentos_Id.Doc_NotaCreditoCliente, this._Id_Numerico1).Rows[0]["Total"].ToString())).ToString().ToUpper();
                    }
                    catch (Exception Ex)
                    {
                        _ravi["Total_Letra"] = "";
                    }
                    dt_Importe.Rows.Add(_ravi);

                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_Ventas.Get_Report_NC(Documentos_Id.Doc_NotaCreditoCliente, this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    reportDataSource3.Name = "Datos_Factura"; //Name of the report dataset in our .RDLC file
                    reportDataSource3.Value = Cat_Empresa_Datos_Factura.Get_Empresa_Datos_Factura();

                    reportDataSource4.Name = "Importe_Letra"; //Name of the report dataset in our .RDLC file
                    reportDataSource4.Value = dt_Importe;

                    reportDataSource5.Name = "FE"; //Name of the report dataset in our .RDLC file
                    reportDataSource5.Value = Documento_Ventas.Get_Report_CFDi(Documentos_Id.Doc_NotaCreditoCliente, this._Id_Numerico1);

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource3);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource4);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource5);
                }

                if (this._RutaReporte.Equals("Informes/Reportes/RPT_ReciboArrendamiento_Cliente_FE.rdlc"))
                {
                    DataTable dt_Importe = new DataTable();
                    dt_Importe.Clear();
                    dt_Importe.Columns.Add("Total_Letra");

                    DataRow _ravi = dt_Importe.NewRow();
                    try
                    {
                        _ravi["Total_Letra"] = FuncionesClass.GetNumeroAletras(Double.Parse(Documento_VentasArrendamiento.Get_Documento_By_Id(Documentos_Id.Doc_ReciboArrendamientoVentas, this._Id_Numerico1).Rows[0]["Total"].ToString())).ToString().ToUpper();
                    }
                    catch (Exception Ex)
                    {
                        _ravi["Total_Letra"] = "";
                    }
                    dt_Importe.Rows.Add(_ravi);

                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_VentasArrendamiento.Get_Report(this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    reportDataSource3.Name = "Datos_Factura"; //Name of the report dataset in our .RDLC file
                    reportDataSource3.Value = Cat_Empresa_Datos_Factura.Get_Empresa_Datos_Factura();

                    reportDataSource4.Name = "Importe_Letra"; //Name of the report dataset in our .RDLC file
                    reportDataSource4.Value = dt_Importe;

                    reportDataSource5.Name = "FE"; //Name of the report dataset in our .RDLC file
                    reportDataSource5.Value = Documento_Ventas.Get_Report_CFDi(Documentos_Id.Doc_ReciboArrendamientoVentas, this._Id_Numerico1);

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource3);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource4);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource5);
                }

                if (this._RutaReporte.Equals("Informes/Reportes/RPT_ReciboArrendamiento_Cliente.rdlc"))
                {
                    DataTable dt_Importe = new DataTable();
                    dt_Importe.Clear();
                    dt_Importe.Columns.Add("Total_Letra");

                    DataRow _ravi = dt_Importe.NewRow();
                    try
                    {
                        _ravi["Total_Letra"] = FuncionesClass.GetNumeroAletras(Double.Parse(Documento_VentasArrendamiento.Get_Documento_By_Id(Documentos_Id.Doc_ReciboArrendamientoVentas, this._Id_Numerico1).Rows[0]["Total"].ToString())).ToString().ToUpper();
                    }
                    catch (Exception Ex)
                    {
                        _ravi["Total_Letra"] = "";
                    }
                    dt_Importe.Rows.Add(_ravi);

                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_VentasArrendamiento.Get_Report(this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    reportDataSource3.Name = "Datos_Factura"; //Name of the report dataset in our .RDLC file
                    reportDataSource3.Value = Cat_Empresa_Datos_Factura.Get_Empresa_Datos_Factura();

                    reportDataSource4.Name = "Importe_Letra"; //Name of the report dataset in our .RDLC file
                    reportDataSource4.Value = dt_Importe;

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource3);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource4);
                }



                if (this._RutaReporte.Equals("Informes/Reportes/RPT_ReciboHonorarios_Cliente_FE.rdlc"))
                {
                    DataTable dt_Importe = new DataTable();
                    dt_Importe.Clear();
                    dt_Importe.Columns.Add("Total_Letra");

                    DataRow _ravi = dt_Importe.NewRow();
                    try
                    {
                        _ravi["Total_Letra"] = FuncionesClass.GetNumeroAletras(Double.Parse(Documento_VentasHonorarios.Get_Documento_By_Id(Documentos_Id.Doc_ReciboHonorariosVentas, this._Id_Numerico1).Rows[0]["Total"].ToString())).ToString().ToUpper();
                    }
                    catch (Exception Ex)
                    {
                        _ravi["Total_Letra"] = "";
                    }
                    dt_Importe.Rows.Add(_ravi);

                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_VentasHonorarios.Get_Report(this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    reportDataSource3.Name = "Datos_Factura"; //Name of the report dataset in our .RDLC file
                    reportDataSource3.Value = Cat_Empresa_Datos_Factura.Get_Empresa_Datos_Factura();

                    reportDataSource4.Name = "Importe_Letra"; //Name of the report dataset in our .RDLC file
                    reportDataSource4.Value = dt_Importe;

                    reportDataSource5.Name = "FE"; //Name of the report dataset in our .RDLC file
                    reportDataSource5.Value = Documento_Ventas.Get_Report_CFDi(Documentos_Id.Doc_ReciboHonorariosVentas, this._Id_Numerico1);

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource3);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource4);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource5);
                }

                if (this._RutaReporte.Equals("Informes/Reportes/RPT_ReciboHonorarios_Cliente.rdlc"))
                {
                    DataTable dt_Importe = new DataTable();
                    dt_Importe.Clear();
                    dt_Importe.Columns.Add("Total_Letra");

                    DataRow _ravi = dt_Importe.NewRow();
                    try
                    {
                        _ravi["Total_Letra"] = FuncionesClass.GetNumeroAletras(Double.Parse(Documento_VentasHonorarios.Get_Documento_By_Id(Documentos_Id.Doc_ReciboHonorariosVentas, this._Id_Numerico1).Rows[0]["Total"].ToString())).ToString().ToUpper();
                    }
                    catch (Exception Ex)
                    {
                        _ravi["Total_Letra"] = "";
                    }
                    dt_Importe.Rows.Add(_ravi);

                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Documento_VentasHonorarios.Get_Report(this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    reportDataSource3.Name = "Datos_Factura"; //Name of the report dataset in our .RDLC file
                    reportDataSource3.Value = Cat_Empresa_Datos_Factura.Get_Empresa_Datos_Factura();

                    reportDataSource4.Name = "Importe_Letra"; //Name of the report dataset in our .RDLC file
                    reportDataSource4.Value = dt_Importe;

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource3);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource4);
                }





                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Inventario_Fisico.rdlc"))
                {
                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Inv_Fisico.Get_Report(this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                }

                if (this._RutaReporte.Equals("Informes/Reportes/RPT_MovInventario.rdlc"))
                {
                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = MovInv.Get_Report(this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                }

                if (this._RutaReporte.Equals("Informes/Reportes/RPT_Traspaso_Almacen.rdlc"))
                {
                    reportDataSource1.Name = "Factura_Cliente"; //Name of the report dataset in our .RDLC file
                    reportDataSource1.Value = Traspasos.Get_Report(this._Id_Numerico1);

                    reportDataSource2.Name = "Empresa"; //Name of the report dataset in our .RDLC file
                    reportDataSource2.Value = Cat_Empresa.Get_Report();

                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
                    this._reportViewer.LocalReport.DataSources.Add(reportDataSource2);
                }











                    this._reportViewer.LocalReport.ReportPath = _RutaReporte;                               
                _reportViewer.RefreshReport();
                _isReportViewerLoaded = true;
            }
        }    
    }
}
